<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
</head>
<body>
<script>
  /**
    npm  https://www.npmjs.cn/
   1. 常见指令
      npm set <registry> <url> 修改源    registry 代表源名称， url代表源地址
      npm ls 查看当前目录下下载的node包
      npm cache clean -f 清除缓存
      npm root -g 查看全局node包(是一个路径)
      npm -v 查看版本号
      npm install npm -g 升级版本号
      npm install 包名 -g 全局安装某个包
      npm init 生成package.json文件，初始化一个项目
      npm init -y 这里的-y是yes的意思，省去敲回车的步骤，生成一个默认的package.json文件

      package.json 与 package-lock.json 区别
      在npm5.0后，npm install 后都会生成一个package-lock.json文件
      package.json缺点： package.json文件只能锁定大版本号，也就是版本号(比如2.05)的第一位(这里的第一位就是2,后面的版本号不会被锁定),当每次npm install
   都会拉取大版本下的最新的小版本号，为了稳定性考虑我们几乎是不敢随意升级依赖包的，这样导致多出工作量，测试等适配，而package-lock.json文件会每安装一个依赖的
   时候都会锁定在你安装的版本
      1. 锁定安装时的包的版本号和包地址，需要上传到git，保证大家的依赖包一致。
      2. 会记录当前状态下实际安装的各个npm, package的具体来源和版本号
      3. npm是一个用于管理package直接依赖关系的管理器，它允许开发者在package中标出自己项目对npm各个库包的依赖
         "dependencies": {
           "@types/node": "^8.0.33",
         }
      在package.json文件中会锁定大版本号，这里也就是8版本，当npm install时，有可能会下载8.1.2版本的。因为由于npm是一个开源项目，有的库包开发者并
      没有遵循要求，有可能能一个大版本升级还是用的之前的版本号(版本号第一位没有变),这时npm install 就会把这次更新下载下来，从而有可能会出现问题，造成兼容等问题
      4. 安装依赖
        以前： 直接修改package，然后npm install 即可
        现在： 因为npm5版本之后会锁在package.lock中，现在如果去改一个版本号需要 npm install xx@x.x.x的方法去更新依赖，然后package.lock也会随之更新
      5. package.lock.json文件会锁定所有模块的版本号，包括主模块和所有子模块的依赖。当执行npm install时，node会从package.json文件中读取模块名称，从
      package.lock.json文件中获取版本号，然后再进行下载和更新。因此当执行npm install时node不会自动更新package.json文件中的模块
      注意：
        1. 当package.json和package.lock.json文件都不存在时，执行npm install后，node会自动生成package.lock.json文件，会把node_modules中模块信息
      全部记录到package.lock.json文件中，但不会生成package.json文件，可以执行npm install -y去生成。
        2. 假如已经安装了express 2.1.4这个版本，从git更新了package.json和package-lock.json，我npm install能覆盖掉node_modules里面的依赖吗?
      npm install是可以直接覆盖掉原先的版本的，所以在协作开发时，这两个文件如果有更新，你的开发环境应该npm install一下才对。

   */
  /**
     nrm
   nrm是npm的镜像源管理工具，有时候国外资源太慢，使用这个就可以快速地切换npm 镜像源
   1. 安装nrm
      npm i nrm -g 全局安装nrm
   2. 常见指令
      nrm ls 展示本地已经下载的所有镜像源(标*代表现在使用的源)
      nrm current 查看当前的源
      nrm use + 源名称  切换镜像源
      nrm add <registry> <url> 新增一条源，registry代表源名称, url 为源地址
      nrm del <registry> 删除一条源
      nrm test <registry> 测试某条源的相应时间
      nrm -V(--version) 查看nrm版本号
      nrm -h(--help) 打开帮助(查看命令作用)
  */
</script>
</body>
</html>